#ifndef __OBJ_MESH_H__
#define __OBJ_MESH_H__

#include <fwHeader.h>
#include <fwMath.h>
#include "Vertex.h"
#include "ObjectShader.h"

class ObjectMesh
{
private:
	bool m_IsGrayScale;
protected:
	GLuint m_VBO;
	GLuint m_IBO;
	char* m_strSRC;
	GLuint m_VBO_Size;
	GLuint m_IBO_Size;
public:
	ObjectMesh();
	ObjectMesh(ObjectMesh*);
	ObjectMesh(GLuint, GLuint, GLuint, GLuint);

	GLuint BindData(Vertex*, GLuint, GLushort*, GLuint);
	GLuint BindLocation(ObjectShader*, Matrix);
	GLuint UnBindLocaction();

	GLuint Destroy();

	GLuint GetVBO(){ return m_VBO; }
	GLuint GetIBO(){ return m_IBO; }
	const char* GetSRC(){ return m_strSRC; }
	GLuint GetVBOSize(){ return m_VBO_Size; }
	GLuint GetIBOSize(){ return m_IBO_Size; }

	//Temp for this project fix after
	void EnableGrayScale(){ m_IsGrayScale = true; }
};

#endif